package com.kalvan.web.log.annotation;

import com.kalvan.web.log.LogType;

import java.lang.annotation.*;

/**
 * @author chenliang
 * @version 2018年9月8日
 * @see SysLog
 */
@Retention(RetentionPolicy.RUNTIME) // 注解会在class中存在，运行时可通过反射获取
@Target({ElementType.METHOD, ElementType.TYPE}) //使用在方法和类上
@Documented // 文档生成时，该注解将被包含在javadoc中，可去掉
public @interface SysLog {

    /**
     * 日志分组<br>
     * 一般定义到类上
     */
    String group() default "";

    /**
     * 日志类型<br>
     */
    LogType type() default LogType.SELECT;

    /**
     * 日志请求方法路径<br>
     * 为空时查找@RequiresPermissions注解的value
     */
    String action() default "";

    /**
     * 日志中文描述<br>
     * 为空时查找@ApiOperation注解的value
     */
    String remark() default "";

    /**
     * 被操作方从request里抓取
     */
    String operated() default "";
}
